# -*- coding: cp1251  -*-

from numpy import *
from fractions import Fraction
from MatrixManipulations import *

def DetTriangular(A):
    nrow, ncolumn = shape(A) 
    if nrow != ncolumn:
        WriteLTex('Матриця не є квадратною. Визначник матриці має місце тільки для квадратних матриць.')
    else:
	WriteTex('Зведемо матрицю ')
	WriteMatrix(A),
	WriteLTex(' до трикутного виду.')
	ReduceToTriangular(A)
	D = A[0][0]
	for i in xrange(1,nrow):
       	    D *= A[i][i]
  	WriteLTex('Визначник трикутної матриці рівний добутку її діагональних елементів. Отже, ')
	WriteDetMatrix(A)
	WriteTex(' $=')
	WriteNumTex(D)
	WriteLTex('.$')

A = LoadMatrix()
StartTex()
DetTriangular(A)
CloseTex()
